home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / amiexpress / source / ae / code / ax3.00 / checkcsi.c < prev    next >
Encoding:
C/C++ Source or Header  |  1980-01-03  |  5.9 KB  |  298 lines

  1. #include "bbs.h"
  2.  
  3. //extern long Time_limit;
  4. //extern int  ChatFlag,HistorySelect;
  5. //extern int CHATF;
  6. //extern BYTE NOFKeys,OnlineEdit;
  7.  
  8.  
  9. extern ULONG SysopStatus;
  10. extern UBYTE NumHistItems,WhichHist;
  11. extern struct TempSysopInfo TSI;
  12. extern long DoHistory, LineHasChanged;
  13.  
  14. extern int F6;
  15. static void Online_Edit(void)
  16. {
  17.  long temp;
  18.  int t=0;
  19.  temp=User.Time_Limit;
  20.  sprintf(GSTR1,"%sCommands/SysCmd/",Cmds->BBSLoc);
  21.  sprintf(GSTR2,"ACCOUNTS %d",User.Slot_Number);
  22.  if(!CustomCommand(GSTR1,GSTR2,1))
  23.  {t=1;
  24.  EditInfo(User.Slot_Number,&User,&User_keys);
  25.  }
  26.   if(User.Time_Limit!=temp) {
  27.         if(User.Time_Limit>temp)
  28.             User.Time_Total=User.Time_Limit;
  29.  
  30.         Time_limit=User.Time_Limit-User.Time_Used;
  31.     }
  32.  
  33.  BytesADL=User.Daily_Bytes_Limit-User.Daily_Bytes_Dld;
  34.  if(t)AEPutStr("\r\nCompleted Edit\r\n");
  35. }
  36.  
  37.  
  38. static void DoOnLineEdit(void)
  39. {
  40.  OnlineEdit=1;
  41.  if(Whence_The_Logon>=REMOTE_LOGON)    {
  42.      IO_Flags[IOFLAG_SER_IN]=0;
  43.      IO_Flags[IOFLAG_SER_OUT]=0;
  44.     }
  45.  ConPutStr("\014");
  46.  Online_Edit();
  47.  (void)StatPrintUser(&User);
  48.  if(Whence_The_Logon>=REMOTE_LOGON)    {
  49.      IO_Flags[IOFLAG_SER_IN]=!0;
  50.      IO_Flags[IOFLAG_SER_OUT]=!0;
  51.     }
  52.  OnlineEdit=0;
  53. }
  54.  
  55. static void StartASend(void)
  56. {
  57.  int stat;
  58.  char str[100];
  59.  
  60.  if(Whence_The_Logon>=REMOTE_LOGON)    {
  61.      IO_Flags[IOFLAG_SER_IN]=0;
  62.         IO_Flags[IOFLAG_SER_OUT]=0;
  63.     }
  64.  strcpy(str,"");
  65.  asl(str);
  66.  /*
  67.  ConPutStr("\nSend File, path/filename: ");
  68.  stat=LineInput("",str,99,KEYBOARD_TIMEOUT);
  69.  if(stat<0||str[0]=='\0')
  70.      return;
  71.  */
  72.  if(Whence_The_Logon>=REMOTE_LOGON)    {
  73.      IO_Flags[IOFLAG_SER_IN]=!0;
  74.         IO_Flags[IOFLAG_SER_OUT]=!0;
  75.     }
  76.  MenuSend(str);
  77. }
  78.  
  79.  
  80. static void StartCapture(void)
  81. {
  82.  extern FILE *CaptureFP;
  83.  int stat;
  84.  char str[100];
  85.  
  86.  if(CaptureFP) {
  87.         fclose(CaptureFP);
  88.         CaptureFP=NULL;
  89.         ConPutStr("\nCapture closed!\n");
  90.     } else {
  91. Redo:
  92.         ConPutStr("\nOpen capture, path/filename: ");
  93.         stat=LineInput("",str,99,KEYBOARD_TIMEOUT);
  94.         if(stat<0||str[0]=='\0')        return;
  95.         CaptureFP=fopen(str,"w");
  96.         if(!CaptureFP) {
  97.             ConPutStr("ERROR: can't open ");
  98.             ConPutStr(str);
  99.             ConPutStr(" for writing!  Try another!\n");
  100.             goto Redo;
  101.         } else    {
  102.             ConPutStr("ACapture opened!\n");
  103.         }
  104.     }
  105. }
  106.  
  107.  
  108. int CheckCSI(void)
  109. {
  110.  int c,ch;
  111.  F6=0;
  112.  ch=GetConKey(1L);
  113. if((!DoHistory)||NumHistItems==0)
  114.     {
  115.     if((ch>='A')&&(ch<'E')&&!RawArrow) { return(FALSE); }
  116.     }
  117.  
  118. if(ch=='A')
  119.     {
  120.      if(RawArrow) return(UPARROW);
  121.     HistorySelect--;
  122.     if(HistorySelect<0)
  123.         {
  124.         if(NumHistItems==MAXHIST)
  125.             {
  126.             HistorySelect=MAXHIST-1;
  127.             }
  128.         else
  129.             {
  130.             HistorySelect=0;
  131.             if(LineHasChanged)
  132.                 {
  133.                 LineHasChanged=0;
  134.                 return(HISTORY);
  135.                 }
  136.             return(FAILURE);
  137.             }
  138.         }
  139.     return(HISTORY);
  140.     }
  141.  
  142. if(ch=='B')
  143.     {
  144.      if(RawArrow) return(DOWNARROW);
  145.     HistorySelect++;
  146.     if(NumHistItems!=MAXHIST)
  147.         {
  148.         if(HistorySelect>=WhichHist)
  149.             {
  150.             HistorySelect--;
  151.             if(LineHasChanged)
  152.                 {
  153.                 LineHasChanged=0;
  154.                 return(HISTORY);
  155.                 }
  156.             return(FAILURE);
  157.             }
  158.         }
  159.     else
  160.         {
  161.         if(HistorySelect>=MAXHIST)
  162.             {
  163.             HistorySelect=0;
  164.             }
  165.         }
  166.     return(HISTORY);
  167.     }
  168.  
  169. if(ch=='C'||ch=='D')
  170.     {
  171.        if(RawArrow)
  172.        {
  173.          if(ch=='C')return(LEFTARROW);
  174.          return(RIGHTARROW);
  175.        }
  176.     return(FALSE);
  177.     }
  178.  
  179. CHATF=0;
  180.  
  181.  c=' ';
  182.  
  183.  if(ch=='1')    {
  184.      c=GetConKey(1L);
  185.         if(c<='9'&&c>='0') {
  186.          ch=c;
  187.             do {
  188.              c=GetConKey(1L);
  189.                 if(c<0)  return(c);
  190.             } while(c!='~'&&c!='v');
  191. /* 11w chg */
  192. /* end 11w  */
  193.             switch(ch) {
  194.              case '5':
  195.                     if(SysopStatus) {
  196.                      User.Sec_Status=TSI.AccessLevel;
  197.                         User.Sec_Board=TSI.RatioType;
  198.                         User.Sec_Library=TSI.Ratio;
  199.                         User.Time_Total=TSI.TimeTotal;
  200.                         memcpy(User.Conference_Access,TSI.ConfAc,10);
  201.                         (void)StatPrintUser(&User);
  202.                     } else {
  203.                      TSI.AccessLevel=User.Sec_Status;
  204.                         TSI.RatioType=User.Sec_Board;
  205.                         TSI.Ratio=User.Sec_Library;
  206.                         TSI.TimeTotal=User.Time_Total;
  207.                         memcpy(TSI.ConfAc,User.Conference_Access,10);
  208.                      F6=1;
  209.                             DoOnLineEdit(); ConvertAccess();
  210.                     }
  211.                  SysopStatus=(~SysopStatus);
  212.                     ConPutStr("\r\nSysop Access ");
  213.                     ConPutStr((SysopStatus?"Granted\r\n":"Removed\r\n"));
  214.                     break;
  215.              case '3':
  216.                     StartASend();
  217.                     break;
  218.             }
  219.             return(0);
  220.         }
  221.     }
  222.  
  223.  while(c!='~'&&c!='v') {
  224.      c=GetConKey(1L);
  225.         if(c<0)  return(c);
  226.     }
  227. if(c=='v')
  228.     {
  229.           if(ch=='0') 
  230.         {
  231.             
  232.           //GETCLIP=CheckForClip();
  233.         }
  234.     }
  235.     else {
  236.      if(!NOFKeys) {
  237.          switch(ch) {
  238.              case '?': /* Help - ToggleStat */
  239.                     ToggleStatusDisplay();
  240.                     break;
  241.                 case '9': /* F10 - FORCE LOGOFF */
  242.                     DropDTR();
  243.                  return(NO_CARRIER);
  244.                     break;
  245.                 case '8': /* F9 - SER_OUT */
  246.                     if(Whence_The_Logon==REMOTE_LOGON)
  247.                      IO_Flags[IOFLAG_SER_OUT]=!IO_Flags[IOFLAG_SER_OUT];
  248.                  break;
  249.                 case '7': /* F8 - SER_IN */
  250.                     if(Whence_The_Logon==REMOTE_LOGON)
  251.                      IO_Flags[IOFLAG_SER_IN]=!IO_Flags[IOFLAG_SER_IN];
  252.                  break;
  253.                 case '6': /* F7 - Toggle Chat bit */
  254.                  if(SySChat==1)            SySChat=0;
  255.                     else                    SySChat=1;
  256.                  StatChatFlag();
  257.                     break;
  258.              case '5': /* F6 - Account editing */
  259.                     F6=1;
  260.                     DoOnLineEdit();
  261.                     CheckUserOnLine(&User,0); ConvertAccess();F6=0;
  262.                     break;
  263. //             case '4': /* F5 - Local Shell */
  264. //                    break;
  265.                 case '3':
  266.                     if(Whence_The_Logon>=REMOTE_LOGON) {
  267.                      IO_Flags[IOFLAG_SER_IN]=0;
  268.                         IO_Flags[IOFLAG_SER_OUT]=0;
  269.                     }
  270.                     StartCapture();
  271.                     if(Whence_The_Logon>=REMOTE_LOGON) {
  272.                      IO_Flags[IOFLAG_SER_IN]=!0;
  273.                         IO_Flags[IOFLAG_SER_OUT]=!0;
  274.                     }
  275.                     break;
  276.                 case '2': /* F3 - DECREASE TIME LIMIT */
  277.                     Time_limit-=600L;
  278.                     User.Time_Total-=600L;
  279.                  break;
  280.                 case '1': /* F2 - INCREASE TIME LIMIT */
  281.                     Time_limit+=600L;
  282.                     User.Time_Total+=600L;
  283.                     break;
  284.              case '0': /* F1 - CHAT TOGGLE */
  285.                     CHATF=1;
  286.                     ChatFlag=!ChatFlag;
  287.                     if(ChatFlag==0)  return(EXITCHAT);
  288.                     SetEnvStat(ENV_CHAT);
  289.                     if(Chat()==NO_CARRIER)        return(NO_CARRIER);
  290.                  return(1);
  291.                     break;
  292.             }
  293.         }
  294.     }
  295.  
  296.  return(0);
  297. }
  298.